package com.hiss.basic.client.system;

import com.hiss.basic.model.system.domain.SysDeptDomain;
import com.hiss.basic.model.system.request.SysDeptCreateRequest;
import com.hiss.basic.model.system.request.SysDeptQueryRequest;
import com.hiss.basic.model.system.request.SysDeptUpdateRequest;
import com.hiss.basic.model.system.response.SysDeptQueryResponse;
import com.hiss.basic.starter.core.utils.tree.TreeNode;
import com.mybatisflex.core.service.IService;

import java.util.Collection;
import java.util.List;

/**
 * 系统部门 service
 */
public interface ISysDeptService extends IService<SysDeptDomain> {

    List<SysDeptQueryResponse> findList(SysDeptQueryRequest request);

    List<TreeNode<Long, Integer>> findTreeList(SysDeptQueryRequest request);

    List<SysDeptQueryResponse> findChildrenList(Collection<Long> deptIdList);

    void create(SysDeptCreateRequest request);

    void update(SysDeptUpdateRequest request);

    void remove(Long id);
}
